[INFO] fetching crate oak-dejavu 0.0.11...
[INFO] fixing oak-dejavu-0.0.11 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] extracting crate oak-dejavu 0.0.11 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate oak-dejavu 0.0.11
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate oak-dejavu 0.0.11
[INFO] tweaked toml for crates.io crate oak-dejavu 0.0.11 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate oak-dejavu 0.0.11 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate oak-dejavu 0.0.11 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded oak-testing v0.0.11
[INFO] [stderr]   Downloaded oak-macros v0.0.11
[INFO] [stderr]   Downloaded oak-highlight v0.0.11
[INFO] [stderr]   Downloaded oak-hover v0.0.11
[INFO] [stderr]   Downloaded oak-core v0.0.11
[INFO] [stderr]   Downloaded oak-vfs v0.0.11
[INFO] [stderr]   Downloaded oak-semantic-search v0.0.11
[INFO] [stderr]   Downloaded oak-folding v0.0.11
[INFO] [stderr]   Downloaded oak-mcp v0.0.11
[INFO] [stderr]   Downloaded oak-symbols v0.0.11
[INFO] [stderr]   Downloaded oak-navigation v0.0.11
[INFO] [stderr]   Downloaded oak-resolver v0.0.11
[INFO] [stderr]   Downloaded oak-pretty-print v0.0.11
[INFO] [stderr]   Downloaded oak-lsp v0.0.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425
[INFO] running `Command { std: "docker" "start" "ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling im-rc v15.1.0
[INFO] [stderr]     Checking bitmaps v2.1.0
[INFO] [stderr]    Compiling bigdecimal v0.4.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking rand_xoshiro v0.6.0
[INFO] [stderr]    Compiling oak-macros v0.0.11
[INFO] [stderr]     Checking sized-chunks v0.6.5
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking triomphe v0.1.15
[INFO] [stderr]     Checking arcstr v1.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking twox-hash v2.1.2
[INFO] [stderr]     Checking oak-core v0.0.11
[INFO] [stderr]     Checking oak-testing v0.0.11
[INFO] [stderr]     Checking oak-dejavu v0.0.11 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `parse_raw::DejavuParserExt`
[INFO] [stdout]    --> src/parser/mod.rs:546:5
[INFO] [stdout]     |
[INFO] [stdout] 546 | use parse_raw::DejavuParserExt;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `new_range_api` has been stable since 1.96.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(new_range_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parse_raw::DejavuParserExt`
[INFO] [stdout]    --> src/parser/mod.rs:546:5
[INFO] [stdout]     |
[INFO] [stdout] 546 | use parse_raw::DejavuParserExt;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `new_range_api` has been stable since 1.96.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(new_range_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `comment_end_found` is assigned to, but never used
[INFO] [stdout]   --> src/lexer/lex.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |                 let mut comment_end_found = false;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_comment_end_found` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/lexer/lex.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let pos = state.get_position();
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/lexer/lex.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let current = state.get_position();
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `comment_end_found` is never read
[INFO] [stdout]   --> src/lexer/lex.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         comment_end_found = true;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_node`
[INFO] [stdout]    --> src/parser/parse_raw.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let block_node = self.parse_block_content(state)?;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build_statement` and `build_effect` are never used
[INFO] [stdout]    --> src/builder/build_stmt.rs:11:19
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl<'config> DejavuBuilder<'config> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout]  11 |     pub(crate) fn build_statement<S: Source + ?Sized>(&self, node: RedNode<DejavuLanguage>, source: &S) -> Result<StatementNode, Oa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub(crate) fn build_effect<S: Source + ?Sized>(&self, node: RedNode<DejavuLanguage>, source: &S) -> Result<EffectDefinition, Oa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser/parse_control_flow.rs:13:19
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout]  13 |     pub(crate) fn parse_if<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLangua...
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub(crate) fn parse_match<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub(crate) fn parse_match_arm<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejav...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn parse_pattern<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuL...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub(crate) fn parse_loop<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLang...
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub(crate) fn parse_return<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub(crate) fn parse_break<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub(crate) fn parse_continue<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejavu...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub(crate) fn parse_yield<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(crate) fn parse_raise<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub(crate) fn parse_resume<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub(crate) fn parse_catch<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub(crate) fn parse_block_expr_node<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate:...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub(crate) fn peek_after_attributes<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Option<DejavuTokenType> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub(crate) fn parse_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejav...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub(crate) fn parse_let_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::D...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     pub(crate) fn parse_expression_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, c...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 469 |     pub(crate) fn parse_using_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate:...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub(crate) fn parse_include<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuL...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     pub(crate) fn parse_primary<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuL...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub(crate) fn parse_string_literal<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 638 |     pub(crate) fn parse_name_path<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejav...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_filter_expression`, `parse_template_code`, and `parse_template_comment` are never used
[INFO] [stdout]    --> src/parser/parse_expr.rs:90:8
[INFO] [stdout]     |
[INFO] [stdout]   6 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn parse_filter_expression<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<(), OakError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn parse_template_code<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::D...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub(crate) fn parse_template_comment<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_raw`, `skip_trivia_and_check_closing_tag`, `parse_block`, `parse_block_content`, and `skip_trivia_and_check_closing_block_tag` are never used
[INFO] [stdout]    --> src/parser/parse_raw.rs:8:19
[INFO] [stdout]     |
[INFO] [stdout]   6 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout]   7 |     /// Parse a raw block: `<% raw %>原始文本<% end raw %>`
[INFO] [stdout]   8 |     pub(crate) fn parse_raw<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLangu...
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn skip_trivia_and_check_closing_tag<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn parse_block<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub(crate) fn parse_block_content<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::D...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     fn skip_trivia_and_check_closing_block_tag<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DejavuParserExt` is never used
[INFO] [stdout]    --> src/parser/parse_raw.rs:270:18
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) trait DejavuParserExt {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser/parse_types.rs:13:19
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout]  13 |     pub(crate) fn parse_namespace<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub(crate) fn parse_attribute<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub(crate) fn parse_micro<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) fn parse_micro_lambda<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Green...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub(crate) fn parse_mezzo<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) fn parse_widget<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub(crate) fn parse_singleton<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub(crate) fn parse_trait<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub(crate) fn parse_effect<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub(crate) fn parse_class<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub(crate) fn parse_flags<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub(crate) fn parse_enums<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub(crate) fn parse_variant_block<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Gree...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub(crate) fn parse_variant<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub(crate) fn parse_generic_parameter_list<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub(crate) fn parse_generic_argument_list<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub(crate) fn parse_parameter_list<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Gre...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 533 |     pub(crate) fn parse_parameter<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 554 |     pub(crate) fn parse_anonymous_class<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Gr...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `oak_dejavu::ast::Item`
[INFO] [stdout]  --> tests/annotation_test.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use oak_dejavu::{DejavuLanguage, DejavuParser, ast::Item};
[INFO] [stdout]   |                                                ^^^^^----
[INFO] [stdout]   |                                                     |
[INFO] [stdout]   |                                                     no `Item` in `ast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Lexer` and `parser::ParseSession`
[INFO] [stdout]  --> tests/annotation_test.rs:1:16
[INFO] [stdout]   |
[INFO] [stdout] 1 | use oak_core::{Lexer, parser::ParseSession};
[INFO] [stdout]   |                ^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DejavuLanguage` and `DejavuParser`
[INFO] [stdout]  --> tests/annotation_test.rs:2:18
[INFO] [stdout]   |
[INFO] [stdout] 2 | use oak_dejavu::{DejavuLanguage, DejavuParser, ast::Item};
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find `Item` in `ast`
[INFO] [stdout]   --> tests/builder/mod.rs:35:96
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let has_flags = typed_root.items.iter().any(|item| matches!(item, oak_dejavu::ast::Item::Flags(_)));
[INFO] [stdout]    |                                                                                                ^^^^ could not find `Item` in `ast`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `new_range_api` has been stable since 1.96.0 and no longer requires an attribute to enable
[INFO] [stdout]  --> tests/main.rs:1:12
[INFO] [stdout]   |
[INFO] [stdout] 1 | #![feature(new_range_api)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `oak-dejavu` (test "annotation_test") due to 1 previous error; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0277]: the trait bound `DejavuRoot: serde::Serialize` is not satisfied
[INFO] [stdout]   --> tests/builder/mod.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 |     test_runner.run_tests::<DejavuLanguage, _>(&builder)
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^ the trait `serde_core::ser::Serialize` is not implemented for `DejavuRoot`
[INFO] [stdout]    |
[INFO] [stdout]    = note: for local types consider adding `#[derive(serde::Serialize)]` to your `DejavuRoot` type
[INFO] [stdout]    = note: for types from other crates check whether the crate offers a `serde` feature flag
[INFO] [stdout]    = help: the following other types implement trait `serde_core::ser::Serialize`:
[INFO] [stdout]              &'a T
[INFO] [stdout]              &'a mut T
[INFO] [stdout]              ()
[INFO] [stdout]              (T,)
[INFO] [stdout]              (T0, T1)
[INFO] [stdout]              (T0, T1, T2)
[INFO] [stdout]              (T0, T1, T2, T3)
[INFO] [stdout]              (T0, T1, T2, T3, T4)
[INFO] [stdout]            and 164 others
[INFO] [stdout] note: required by a bound in `BuilderTester::run_tests`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/oak-testing-0.0.11/src/building.rs:92:23
[INFO] [stdout]    |
[INFO] [stdout] 88 |     pub fn run_tests<L, B>(self, builder: &B) -> Result<(), OakError>
[INFO] [stdout]    |            --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 92 |         L::TypedRoot: serde::Serialize + Debug + Sync + Send,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^ required by this bound in `BuilderTester::run_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `comment_end_found` is assigned to, but never used
[INFO] [stdout]   --> src/lexer/lex.rs:88:21
[INFO] [stdout]    |
[INFO] [stdout] 88 |                 let mut comment_end_found = false;
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: consider using `_comment_end_found` instead
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pos`
[INFO] [stdout]   --> src/lexer/lex.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |                     let pos = state.get_position();
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]    --> src/lexer/lex.rs:113:21
[INFO] [stdout]     |
[INFO] [stdout] 113 |                 let current = state.get_position();
[INFO] [stdout]     |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `comment_end_found` is never read
[INFO] [stdout]   --> src/lexer/lex.rs:95:25
[INFO] [stdout]    |
[INFO] [stdout] 95 |                         comment_end_found = true;
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ast::*`
[INFO] [stdout]  --> tests/syntax_unification.rs:2:48
[INFO] [stdout]   |
[INFO] [stdout] 2 | use oak_dejavu::{DejavuLanguage, DejavuParser, ast::*};
[INFO] [stdout]   |                                                ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `DejavuLexer<'_>: Clone` is not satisfied
[INFO] [stdout]   --> tests/lexer/mod.rs:12:22
[INFO] [stdout]    |
[INFO] [stdout] 12 |     tester.run_tests(&lexer)
[INFO] [stdout]    |            --------- ^^^^^^ the trait `Clone` is not implemented for `DejavuLexer<'_>`
[INFO] [stdout]    |            |
[INFO] [stdout]    |            required by a bound introduced by this call
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `LexerTester::run_tests`
[INFO] [stdout]   --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/oak-testing-0.0.11/src/lexing.rs:95:39
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn run_tests<L, Lex>(self, lexer: &Lex) -> Result<(), OakError>
[INFO] [stdout]    |            --------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 95 |         Lex: Lexer<L> + Send + Sync + Clone,
[INFO] [stdout]    |                                       ^^^^^ required by this bound in `LexerTester::run_tests`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `build_root` found for struct `DejavuParser<'config>` in the current scope
[INFO] [stdout]   --> tests/syntax_unification.rs:21:23
[INFO] [stdout]    |
[INFO] [stdout] 21 |     let ast1 = parser.build_root(green1, &source1).expect("Failed to build AST for object initialization");
[INFO] [stdout]    |                       ^^^^^^^^^^ method not found in `DejavuParser<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `tokenize` found for struct `DejavuLexer<'config>` in the current scope
[INFO] [stdout]   --> tests/main.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |     let tokens: Vec<_> = lexer.tokenize(&source).collect();
[INFO] [stdout]    |                                ^^^^^^^^ method not found in `DejavuLexer<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `build_root` found for struct `DejavuParser<'config>` in the current scope
[INFO] [stdout]   --> tests/syntax_unification.rs:44:23
[INFO] [stdout]    |
[INFO] [stdout] 44 |     let ast2 = parser.build_root(green2, &source2).expect("Failed to build AST for trailing closure");
[INFO] [stdout]    |                       ^^^^^^^^^^ method not found in `DejavuParser<'_>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `oak-dejavu` (test "main") due to 4 previous errors; 1 warning emitted
[INFO] [stderr] error: could not compile `oak-dejavu` (test "syntax_unification") due to 10 previous errors; 1 warning emitted
[INFO] [stdout] error[E0433]: cannot find type `Item` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |            ^^^^ use of undeclared type `Item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Statement` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:24:28
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |                            ^^^^^^^^^ use of undeclared type `Statement`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::ItemNode::Statement` and 4 others; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 24 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout] 24 +     if let Item::Statement(crate::ItemNode::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 24 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout] 24 +     if let Item::Statement(oak_core::UniversalElementRole::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 24 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout] 24 +     if let Item::Statement(oak_dejavu::DejavuElementType::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 24 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout] 24 +     if let Item::Statement(oak_dejavu::ast::ItemNode::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if let Item::Statement(LetStatement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Expr` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |                                                        ^^^^ use of undeclared type `Expr`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::StatementNode::Expr` and 1 other; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 24 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout] 24 +     if let Item::Statement(Statement::ExprStmt { expr: crate::StatementNode::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 24 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout] 24 +     if let Item::Statement(Statement::ExprStmt { expr: oak_dejavu::ast::StatementNode::Object { callee, block, .. }, .. }) = &ast1.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Expr` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:25:16
[INFO] [stdout]    |
[INFO] [stdout] 25 |         if let Expr::Ident(ident) = callee.as_ref() {
[INFO] [stdout]    |                ^^^^ use of undeclared type `Expr`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::StatementNode::Expr` and 1 other; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 25 -         if let Expr::Ident(ident) = callee.as_ref() {
[INFO] [stdout] 25 +         if let crate::StatementNode::Ident(ident) = callee.as_ref() {
[INFO] [stdout]    |
[INFO] [stdout] 25 -         if let Expr::Ident(ident) = callee.as_ref() {
[INFO] [stdout] 25 +         if let oak_dejavu::ast::StatementNode::Ident(ident) = callee.as_ref() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Item` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 |     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |            ^^^^ use of undeclared type `Item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Statement` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:46:28
[INFO] [stdout]    |
[INFO] [stdout] 46 |     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |                            ^^^^^^^^^ use of undeclared type `Statement`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::ItemNode::Statement` and 4 others; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 46 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout] 46 +     if let Item::Statement(crate::ItemNode::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 46 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout] 46 +     if let Item::Statement(oak_core::UniversalElementRole::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 46 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout] 46 +     if let Item::Statement(oak_dejavu::DejavuElementType::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 46 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout] 46 +     if let Item::Statement(oak_dejavu::ast::ItemNode::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] help: a struct with a similar name exists
[INFO] [stdout]    |
[INFO] [stdout] 46 |     if let Item::Statement(LetStatement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Expr` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:46:56
[INFO] [stdout]    |
[INFO] [stdout] 46 |     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |                                                        ^^^^ use of undeclared type `Expr`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::StatementNode::Expr` and 1 other; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 46 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout] 46 +     if let Item::Statement(Statement::ExprStmt { expr: crate::StatementNode::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 46 -     if let Item::Statement(Statement::ExprStmt { expr: Expr::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout] 46 +     if let Item::Statement(Statement::ExprStmt { expr: oak_dejavu::ast::StatementNode::Object { callee, block, .. }, .. }) = &ast2.items[0] {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: cannot find type `Expr` in this scope
[INFO] [stdout]   --> tests/syntax_unification.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 |         if let Expr::Ident(ident) = callee.as_ref() {
[INFO] [stdout]    |                ^^^^ use of undeclared type `Expr`
[INFO] [stdout]    |
[INFO] [stdout] help: there is an enum variant `crate::StatementNode::Expr` and 1 other; try using the variant's enum
[INFO] [stdout]    |
[INFO] [stdout] 47 -         if let Expr::Ident(ident) = callee.as_ref() {
[INFO] [stdout] 47 +         if let crate::StatementNode::Ident(ident) = callee.as_ref() {
[INFO] [stdout]    |
[INFO] [stdout] 47 -         if let Expr::Ident(ident) = callee.as_ref() {
[INFO] [stdout] 47 +         if let oak_dejavu::ast::StatementNode::Ident(ident) = callee.as_ref() {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0433, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0433`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `block_node`
[INFO] [stdout]    --> src/parser/parse_raw.rs:151:13
[INFO] [stdout]     |
[INFO] [stdout] 151 |         let block_node = self.parse_block_content(state)?;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_block_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `build_statement` and `build_effect` are never used
[INFO] [stdout]    --> src/builder/build_stmt.rs:11:19
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl<'config> DejavuBuilder<'config> {
[INFO] [stdout]     | ------------------------------------ methods in this implementation
[INFO] [stdout]  11 |     pub(crate) fn build_statement<S: Source + ?Sized>(&self, node: RedNode<DejavuLanguage>, source: &S) -> Result<StatementNode, Oa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub(crate) fn build_effect<S: Source + ?Sized>(&self, node: RedNode<DejavuLanguage>, source: &S) -> Result<EffectDefinition, Oa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser/parse_control_flow.rs:13:19
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout]  13 |     pub(crate) fn parse_if<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLangua...
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  55 |     pub(crate) fn parse_match<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub(crate) fn parse_match_arm<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejav...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn parse_pattern<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuL...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub(crate) fn parse_loop<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLang...
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub(crate) fn parse_return<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub(crate) fn parse_break<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub(crate) fn parse_continue<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejavu...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     pub(crate) fn parse_yield<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(crate) fn parse_raise<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub(crate) fn parse_resume<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLa...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub(crate) fn parse_catch<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub(crate) fn parse_block_expr_node<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate:...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub(crate) fn peek_after_attributes<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Option<DejavuTokenType> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 381 |     pub(crate) fn parse_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejav...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub(crate) fn parse_let_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::D...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 459 |     pub(crate) fn parse_expression_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, c...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 469 |     pub(crate) fn parse_using_statement<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate:...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub(crate) fn parse_include<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuL...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     pub(crate) fn parse_primary<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuL...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 614 |     pub(crate) fn parse_string_literal<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 638 |     pub(crate) fn parse_name_path<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::Dejav...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_filter_expression`, `parse_template_code`, and `parse_template_comment` are never used
[INFO] [stdout]    --> src/parser/parse_expr.rs:90:8
[INFO] [stdout]     |
[INFO] [stdout]   6 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  90 |     fn parse_filter_expression<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<(), OakError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn parse_template_code<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::D...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub(crate) fn parse_template_comment<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `parse_raw`, `skip_trivia_and_check_closing_tag`, `parse_block`, `parse_block_content`, and `skip_trivia_and_check_closing_block_tag` are never used
[INFO] [stdout]    --> src/parser/parse_raw.rs:8:19
[INFO] [stdout]     |
[INFO] [stdout]   6 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout]   7 |     /// Parse a raw block: `<% raw %>原始文本<% end raw %>`
[INFO] [stdout]   8 |     pub(crate) fn parse_raw<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLangu...
[INFO] [stdout]     |                   ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  75 |     fn skip_trivia_and_check_closing_tag<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn parse_block<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::DejavuLan...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     pub(crate) fn parse_block_content<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a, crate::D...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     fn skip_trivia_and_check_closing_block_tag<'a, S: Source + ?Sized>(&self, state: &mut State<'a, S>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `DejavuParserExt` is never used
[INFO] [stdout]    --> src/parser/parse_raw.rs:270:18
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub(crate) trait DejavuParserExt {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser/parse_types.rs:13:19
[INFO] [stdout]     |
[INFO] [stdout]  12 | impl<'config> super::DejavuParser<'config> {
[INFO] [stdout]     | ------------------------------------------ methods in this implementation
[INFO] [stdout]  13 |     pub(crate) fn parse_namespace<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     pub(crate) fn parse_attribute<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub(crate) fn parse_micro<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) fn parse_micro_lambda<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Green...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub(crate) fn parse_mezzo<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) fn parse_widget<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 222 |     pub(crate) fn parse_singleton<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub(crate) fn parse_trait<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub(crate) fn parse_effect<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'...
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub(crate) fn parse_class<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 355 |     pub(crate) fn parse_flags<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub(crate) fn parse_enums<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<'a...
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub(crate) fn parse_variant_block<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Gree...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub(crate) fn parse_variant<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNode<...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 450 |     pub(crate) fn parse_generic_parameter_list<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub(crate) fn parse_generic_argument_list<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 502 |     pub(crate) fn parse_parameter_list<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Gre...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 533 |     pub(crate) fn parse_parameter<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a GreenNod...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 554 |     pub(crate) fn parse_anonymous_class<'a, S: oak_core::source::Source + ?Sized>(&self, state: &mut State<'a, S>) -> Result<&'a Gr...
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425", kill_on_drop: false }`
[INFO] [stdout] ba2113a0b3c563978eb89cd9dbf7d7092d1cf462fe3445230774fa47d8da6425
